package mlz.work;

/*
## 需求7：找素数

判断101-200之间有多少个素数，并输出所有素数。
说明：除了1和它本身以外，不能被其他正整数整除，就叫素数
例如：3、7就是素数，而9、21等等...不是素数

需求分析:
1.方法是否需要传入参数?
    需要,需要两个参数来接收范围
2.方法是否需要返回值?
    需要,需要返回素数的个数
3.方法内部的业务逻辑
    如果这个数只能被除了1和它本身以外，不能被其他正整数整除,这不就是素数
*/
public class WorkDemo07 {
    public static void main(String[] args) {
        int count = search(101, 200);
        System.out.println("总个数:" + count);
    }

    public static int search(int start, int end){
        //定义一个统计个数的变量
        int count = 0;

        //1.定义一个for循环找到101-200之间的每个数据
        for (int i = start; i <= end; i++) {
            //i = 101  102  103......

            //定义一个变量作为记录信号位
            boolean flag = true; //假设的意思:默认当前i记录的数据是素数

            //2.判断当前位置上的数是否是素数
            for (int j = 2; j <= i / 2; j++) {
                if (i % j == 0 ){
                    //i当前记住的数据不是素数
                    flag = false;
                    break;
                }
            }
            //3.根据判断的结果输出当前i记录的数据,是素数的情况
            if (flag){
                System.out.println(i);
                //并且统计个数
                count++;
            }
        }
        return count;
    }

}
















